﻿namespace vm.Aspects.Diagnostics
{
    abstract class ExceptionDumpMetadata
    {
        [Dump(0)]
        public object Message { get; set; }

        [Dump(1)]
        public object InnerException { get; set; }

        [Dump(-1)]
        public object TargetSite { get; set; }

        [Dump(-2)]
        public object Source { get; set; }

        [Dump(-3, DumpNullValues=ShouldDump.Skip)]
        public object HelpLink { get; set; }

        [Dump(-4, ValueFormat="0x{0:X8}")]
        public object HResult { get; set; }

        [Dump(int.MinValue)]
        public object Data { get; set; }

        [Dump(int.MinValue, ValueFormat="\n{0}")]
        public object StackTrace { get; set; }

        [Dump(int.MinValue)]
        public object WatsonBuckets { get; set; }

        [Dump(int.MinValue)]
        public object IPForWatsonBuckets { get; set; }

        [Dump(int.MinValue)]
        public object IsTransient { get; set; }

        [Dump(int.MinValue)]
        public object RemoteStackTrace { get; set; }
    }
}
